package com.zhht.checkcop.util;

import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;



public class BeanCopyUtil {
	
	public static Object OTO(Object obj, Object cx)
			throws Exception {

		//Object cx = c.newInstance();
		Class c=cx.getClass();
		Class c1=obj.getClass();

		

		Field[] fields = c.getDeclaredFields();// 获取成员变量
		Field[] fields1 = c1.getDeclaredFields();

		for (int j = 0; j < fields.length; j++) {
			for (int i = 0; i < c.getMethods().length; i++) {
				Method m = c.getMethods()[i];
				// System.out.print("成员变量" + it + "类型 : " +
				// fields[it].getType().getName());
				// System.out.print("\t成员变量" + it + "变量名: " +
				// fields[it].getName() + "\t");
				if (m.getName().contains("set")
						&& m.getName()
								.toLowerCase()
								.substring(3)
								.equals((fields[j].getName().toLowerCase()
										.trim()))) {
					for (int y = 0; y <c1.getMethods().length; y++) {
						Method m1 = c1.getMethods()[y];
						if(m1.getName().contains("get")
						&& m1.getName()
								.toLowerCase()
								.substring(3)
								.equals((fields[j].getName().toLowerCase()
										.trim()))){
							m.invoke(obj, m1.invoke(cx));
						}
						
					}

				
					
				}
				
			}

		
		}

		return cx;

	}
	
	public static void main(String[] args){
//		OMSOrderDetail o=new OMSOrderDetail();
//		OMSOrderDetail o1=new OMSOrderDetail();
//		o1.setActivityId(1233);
//		o1.setColor("fff");
//		try {
//			BeanCopyUtil.OTO(o, o1);
//			System.out.println(o.getActivityId()+".."+o1.getColor());
//			o1.setActivityId(1233555);
//			System.out.println(o.getActivityId()+".."+o1.getColor());
//		} catch (Exception e) {
//			// TODO Auto-generated catch block
//			e.printStackTrace();
//		}
		
	}

}
